微服务安全架构应用EAI包括哪些核心组件
微服务安全架构应用EAI包括以下核心组件:
消息路由:消息路由用于将消息传递到某个微服务,我们可以基于消息路由把某些业务请求转发到新的微服务,而不是交由原有系统处理。通过这种方式,我们在开始实施微服务架构的过程中不需要完成整个逻辑,而只需提供部分组件的实现即可。
内容路由器:内容路由器(Content-based Router)是最简单的路由器,即通过消息的内容决定路由结果。这里的消息内容包括输入消息的消息头属性值、消息体类型以及各种针对消息体内容的自定义的业务规则,通过内容路由器可以产生一对一的路由效果。显然,通过内容路由器,我们可以实现发送消息到某个特定微服务的效果。
接收表:接收表(Recipient List Router)面向1对多的路由需求,当对同一消息进行路由时,特定场景下可能会满足多种路由条件从而产生多个路由结果。接收表在现有系统与微服务系统并存的情况下也有一定的应用场景,我们可以在不改造现有系统的前提下,透明地将同一个消息分别发送给现有系统和微服务系统,并通过微服务系统进行最后结果的处理,最终慢慢替换掉现有系统,这实际上也可以理解为绞杀者模式的一种具体应用。
过滤器:过滤器(Filter)的目的是决定是否将消息流转到下一个环节,如果满足一定过滤条件,则该消息将不会产生任何路由结果,过滤条件同样可以包括复杂的业务流程性内容。对于微服务所不能支持的某些消息而言,过滤器可以帮助我们实现消息过滤。
分解器:分解器的典型应用场景是消息包含多个元素,而每个元素处理方式不同,这时候我们可以把原始消息分解成多个消息,并通过复制关联标识符(Correlation Id)等公共属性的方式实现分解后消息的关联。聚合器(Aggregator)往往和分解器一起使用,是分解的逆过程,将独立而又相关的消息组织成整体进行处理。聚合器的实现具有典型的状态性,因为独立消息的个数、到达顺序、相关性等因素都依赖于消息传递上下文。有时候,分解之后的独立消息并不一定能在有限的时间间隔之内都到达聚合器,而聚合器也不可能无限等待,这就需要明确聚合完成策略。